利用宝塔面板部署云服务器(Flask+uwsgi)

您所在的位置:网站首页 flask 启动ip 配置 利用宝塔面板部署云服务器(Flask+uwsgi)

利用宝塔面板部署云服务器(Flask+uwsgi)

2024-05-30 02:45| 来源: 网络整理| 查看: 265

一、安装Python3以及虚拟环境 安装Python3

在这里插入图片描述

# 下载 python 3.8.6 wget https://www.Python.org/ftp/python/3.8.6/Python-3.8.6.tar.xz # 解压 tar xvf Python-3.8.6.tar # 进入 python3.8.6 目录 cd Python-3.8.6 # 安装 ./configure --prefix=/usr/local/python3 && make && make install #创建软连接 ln -s /usr/local/python3/bin/python3 /usr/bin/python ln -s /usr/local/python3/bin/pip3 /usr/bin/pip 安装虚拟环境

安装virtualenv和virtualenvwrapper

pip3 install virtualenv pip3 install virtualenvwrapper

在安装virtualenvwrapper过程中遇到了一个Error,一开始这个错误直接导致安装失败,后面用rm -rf /usr/bin/python和ln -s /usr/local/python3/bin/python3 /usr/bin/python更新了一下软连接,更新了一下pip python -m pip install --upgrade pip,把它从pip 20.2.1更新到了pip 21.0.1 在这里插入图片描述 之后再安装可以安装成功了,如下图: 在这里插入图片描述 但是安装过程中还是会报这个错,如有大佬烦请帮忙看看原因。 Error内容如下:

distutils.errors.DistutilsError: Command '['/usr/bin/python', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmpbyfisgsj', '--quiet', '--index-url', 'http://mirrors.tencentyun.com/pypi/simple', 'pbr']' returned non-zero exit status 1.

修改虚拟环境的配置为Python3

vim /usr/local/python3/bin/virtualenvwrapper.sh

修改如下: 在这里插入图片描述

修改bashrc配置文件

vim ~/.bashrc

在末行添加以下内容: 在这里插入图片描述 执行以下命令使得对.bashrc配置文件的修改有效

source ~/.bashrc

增加虚拟环境的软链接

cd /usr/bin/ ls -al |grep virtualenv cd /usr/local/python3/bin/ ln virtualenv /usr/bin/virtualenv

创建虚拟环境实例

mkvirtualenv -p python3 [虚拟环境实例名字] workon # 查看所有的虚拟环境实例 deactivate # 退出当前虚拟环境实例 workon [虚拟环境实例名字] # 退出后再进入某个虚拟环境实例 rmvirtualenv [虚拟环境实例名字] # 删除某个虚拟环境实例

进入虚拟环境后会出现(虚拟实例名) [root@....],如图: 在这里插入图片描述

二、利用宝塔面板快速部署项目环境

Centos安装宝塔面板命令:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

安装完成之后会出现以下信息: 在这里插入图片描述 打开外网面板地址,是一个登录页面,然后用username和password进行登录。

如果登录不上,有可能是服务器没有放行面板的端口[8888],云服务器可以找到控制台该实例的安全组设置,修改原来的或者新建一组安全组规则,放行该端口,再次尝试登录即可。 放行端口安全组如图 这里是宝塔官方提供的开端口教程,很详细了。 腾讯云服务器:https://www.bt.cn/bbs/thread-1229-1-1.html 阿里云服务器:https://www.bt.cn/bbs/thread-2897-1-1.html 华为云服务器:https://www.bt.cn/bbs/thread-3923-1-1.html

宝塔面板登录成功后,会有一个快速部署这四项的选择,当然也可以之后到软件商店手动选择安装 在这里插入图片描述 打开SSH 在这里插入图片描述 安装pip install uwsgi,pip install flask 在这里插入图片描述

至此,

三、上传Flask项目到服务器

在这里插入图片描述 上传项目默认上传目录是在/www/wwwroot下。 上传了一个最简单的Flask项目HW 在这里插入图片描述 点击终端,打开终端(确保终端的当前目录在HelloWorld下面),执行命令pip freeze >requirements.txt,再点击刷新,目录下会出现这个文件。这个文件是Python项目管理器创建Flask项目时需要的可执行文件?我也不是很懂这里,但是没有这个文件,下一步部署项目就会出问题。 在这里插入图片描述 这里找到了解释和一个说明,🐎🐖 在这里插入图片描述 创建一个run.py文件,文件内容是以下内容:

from app import app if __name__ == '__main__': app.run()

创建一个uwsgi.ini,内容如下:

[uwsgi] module = run:app master = true processes = 3 threads = 2 # chdir是项目目录,一定要填对!! chdir = /www/wwwroot/HelloWorld # wsgi-file= /www/wwwroot/HelloWorld/app.py wsgi-file= /www/wwwroot/HelloWorld/run.py # http = 42.192.77.44:22 logto = /www/wwwroot/HelloWorld/logs/error.log chmod-socket = 660 vacuum = true master = true max-requests = 1000 socket = 127.0.0.1:5000

把文件的后缀名改成.ini

如果有域名绑定,在域名绑定后,把app.py、run.py、uwsgi.ini这三个文件复制到/www/wwwroot/www.[我的域名].xyz这个路径下,Flask项目上传完成。

四、启动uwsgi

在面板SSH用以下命令启动uwsgi。

uwsgi --ini /www/wwwroot/HelloWorld/uwsgi.ini &

启动的状态可以用进程查看netstat -anp|grep 5000,也可以在日志里查看,我推荐查看启动日志,不论是项目的问题还是启动的状态日志都写得一清二楚,日志查看请参考uwsgi.ini这个配置文件的logto的路径。启动一次日志截图如下:(一般启动有问题,问题都会在*** Operational MODE: preforking+threaded ***下面进行说明,你根据它的error提示进行修改,再重新启动uwsgi就行) 在这里插入图片描述 关闭uwsgi的命令是pkill -f uwsgi -9。 到这一步,如果你输入服务器的公网ip,就能看到Hello World出现了。

五、 域名绑定

在这里插入图片描述 宝塔面板点开“网站”,然后创建站点(这一步相当于在服务器端绑定域名,同时在域名处也需要绑定服务器,双向绑定才能用域名打开服务器部署的项目。站点需要在域名购买的地方进行解析,一般是在域名管理处) 在这里插入图片描述 域名解析详细内容,一般会有帮助,这里不详述了。

(创建站点后,会自动生成一个网站目录,/www/wwwroot/www.[域名].xyz)

修改nginx,在网站设置的配置文件中的这个位置添加这一段

location / { include uwsgi_params; uwsgi_pass 127.0.0.1:5000; }

uwsgi_pass后面的地址一定要跟uwsgi.ini配置文件里的socket地址一致 在这里插入图片描述 解析完成后,可以用域名显示HelloWorld,就OK了。 在这里插入图片描述

这是个人(小白)经验总结帖,表述不合理的地方敬请(大佬)指正。

参考: 利用宝塔搭建nginx+uwsgi+flask的web服务器(阿里云centos_7系统) 宝塔python项目管理器_宝塔python项目管理器部署flask笔记



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3